
This is an unofficial patch, and will not be supported by Electronic Arts or Sonalysts, Inc.
This patch was developed by Sonalysts, Inc. in close cooperation with Chris D. of the Naval Warfare Project (NWP) (http://www.navalwarfare.net/).
Many of the enhancements listed below, especially any database-related additions, were intended specifically for the NWP, and may not function properly with the original Fleet Command databases.  All changes that require the NWP are configurable via several new entries in the Fleet Command.ini file under the [NWP] section, and are disabled by default, so the patch should still play properly with the original databases.  Some of the original scenarios are likely to play out a little different due to the new salvo algorithms and AI fixes; while that's a good thing in most cases, be aware the possibility exists that it may render some scenarios much more difficult to complete.  

AI Improvements

1. Fixed bug where AI-launched aircraft wouldn't change course to close targets
2. Fixed bug where AI-launched aircraft wouldn't evaluate doctrine on assigned targets
3. Fixed AI aircraft terrain-following problem
4. New Salvo fire algorithms.  The original Fleet Command fired just enough weapons to destroy a target, with a 2-missile salvo limit.  The original salvo fire algorithm has been modified, and an alternative method is selectable by setting the .ini flag "SalvoWarheadMethod" to FALSE.  In addition, the missile "dribbling" problem from the original game has been fixed- no new weapons will be fired until the original salvo is gone.  The new algorithms operate as follows:

	Warhead-based salvo
Enough weapons are fired to overcome the target's armor value.  If the target has airstrips, or 8 or more weapons launchers, twice the target's armor value are launched; or if the target has 4 or more launchers, 1 1/2 times the target's armor value are launched.

	Point-based salvo
2 missiles are fired for every 250 points of the target's default point value (except for land targets, which use the scenario point value).  Both the point increment and the missiles per increment are adjustable in the .ini file.  The original Fleet Command scenarios were not designed to take full advantage of this method, so it is defaulted off.

5. Fixed missile payload/target armor priority imbalance (improves selection of weapon from closest platform when applicable)
6. Fixed reuse of AI landed aircraft (AI aircraft will now relaunch after reloading)
7. Fixed AI closing rules to match launcher firing range logic (improves wandering aircraft and refusals to fire)
8. Fixed prioritization of launchers during reload delays (launchers will not be selected for fire during reload)
9. All guns always targeted regardless of salvo considerations (improves close-in weapons fire)
10. Fixed user engage priority (first user-ordered attack was occasionally acknowledged but never carried out)
11. Fixed disagreements between AI closing logic and weapon firing logic (improves wandering/circling aircraft problems)
12. Improved helo engagements with submarines, particularly their closing and firing logic (under certain circumstances helos had unfair knowledge of a subs true position, and wouldn't fire on a solution when it was too far off)
13. Improved surface platform steering to support gun engagements
14. Fixed tracer trajectories to better match shell fire
15. AI aircraft no longer fly an intercept pitch to attack surface and land targets (except with guns)
16. All platforms automatically turn on FC Radar when any radar is turned on, and turn it off when all other radars are off

Weapons Improvements

1. All weapons shut down on lost track instead of detonate
2. Changed torpedo low speed to 2/3 max speed (dual speed torpedoes now possible- torpedoes can reach max range at low speed, about 2/3 max range at high speed)
3. Adjusted weapon fuel ranges to account for acceleration time (short range weapons should now reach their full range)
4. Guided weapons require local contact by their guiding sensors when GuidedWeaponSensorDBFlag is set in .ini .  Launchers that require fire control radar now require FCRadar contact (not just fire control radar available and on), plus FCRadar will automatically turn on when required.
5. Enabled underwater shell detonations, for RBU's and similar weapons
6. AAM/SAMs can target any AAM/SAM which is also an ASM/SSM.  Only applies when AllowAAMTargeting is set in .ini

Sensor Improvements

1. Fixed 255 sensor limit (now limited to 32767)
2. Changed radar sensor database min/max alt's to apply to targets only (true surface search and air search radar now possible)
3. Radar min detection altitudes changed to Above Ground Level
4. Fixed submarine sensors to be at masthead height + 15ft
5. Fixed range-to-horizon calculations

.ini File Additions
1. Added NoColdCat switch to disable cold-cats
2. Added SubCommsAlways switch for constant sub comms regardless of depth 
3. Added FCRadarContactCreation switch to prevent fire control radar from creating solutions
4. Added MissileReattackDBFlag switch to turn on weapon reattack database flag.  When set, the database CMFlag 4 is checked to see if a weapon can reattack after losing its target (this value is not set in the official databases); when not set, only SSMs and torpedoes can reattack
5. Added ForceWeaponShutdown switch to have doctrine SHUTDOWN command shut a weapon down whether or not any targets have been acquired
6. Added DoctrineDebugOn switch to enable doctrine debug output to the Messages window (F4)
7. Added MinMissileFiringRng and MinTorpedoFiringRng to set minimum firing ranges for missiles and torpedoes
8. Added ShowAllSensors switch to show all sensors in right-click menu.  Passive sensors are greyed out since they are always on.
9. Added GuidedWeaponSensorDBFlag switch to use database sonobuoy count as guiding sensor class for weapons only (this value is not filled in the official databases)
10. Added  MinHeloAttackRng and MinAirAttackRng to set minimum attack ranges for aircraft and helos (improves aircraft circling targets while engaging)
11. Added EnforceLocalContactFiring switch.  When set, a firing platform must be detecting the target it is firing on
12. Added AllowAAMTargeting switch.  When set, an AAM/SAM which is also an ASM/SSM can be targeted by another AAM/ASM.  When clear, AAM/SAMs cannot be targeted at all.
13. Added ShowSensorCircles switch.  When set, sensor range circles are plotted for sensors that have color information in the sensor database.
14. Added NoAircraftInterceptSpd switch.  When set, aircraft will not automatically change speed when given user orders.

Database Changes

1. Added flag for Prelock as CMFlag 1 for weapons only.  If set, the weapon won't switch targets once it has acquired
2. Added radar (and visual and IR) source level.  Similar to sonar source level, it can be used to make a target stealthy.  Values are 1-100, which is a percentage applied to the detecting sensor's max range. Entered in the wpnEffectiveness slot for ships and subs, sonarSrcLevel for all others.
3. Added smokeless flag CMFlag 2 for weapons- when set, the weapon won't have a smoke trail
4. Added flag CMFlag 8 for weapons that can be remote targeted (at a contact not locally held).  Only applies when EnforceLocalContactFiring is set in .ini
5. Added flag CMFlag 16 for weapons that are given a target snapshot at time of fire.  When set, a weapon will call new contact doctrine at time of fire, giving tactic doctrine more control over its preenable phase.
6. Added guiding sensor class for weapons.  The buoyCount slot refers to the class or classes of sensor that can guide this weapon if the GuidedWeaponSensorDBFlag is set in .ini.  This value is a cumulative bit field where each sensor class is represented as 2^classId
7. Added sensor circle color to the "attach" field.  The color is stored as an RGB value where color  = R*256 + G*256*256 + B*256*256*256.  This color value is then added to the original attach value of 0 or 1.
8. Added flag CMFlag 128 for aircraft that are capable of inflight refueling
9. Added flag CMFlag 128 for subs that have anechoic coating.  Active sonar detection ranges are cut by half for any sub with this flag set.
10. Any aircraft with a minesweeping priority value is considered a bomber, and it's MinAirAttackRng is tripled automatically.

Doctrine Additions/Changes

1. SHUTDOWN command removes object without detonating
2. Added ATTACK_CLASS and FIRE_CLASS doctrine commands
3. Renamed "PROJECTILE" class as separate "SHELL" and "BULLET"
4. Added SOLNRNG param, which gives the perceived solution range; the original RNG expression now gives the true range to the target
5. Added DROP command to remove target solution
6. Added SRCLEVEL param and SETSRCLEVEL command to change object sonar/radar visibility
7. Added operators "&" and "!&" which perform logical "and" and logical "nand" between 2 numbers.  Also added expressions "DBCMFLAGS", "DBTARGETFLAGS", and "DBMISSILEFLAGS", which return database values for platform or target depending on mode.
8. Added LAUNCH_AIR and LAUNCH_HELO commands: LAUNCH_AIR <loadout> <quantity> where loadout is one of "ASW","ASUW","AAW","STRIKE"
9. Added ENGAGING param, true when doctrine target is being currently engaged, enabled by "EnableEngageDoctrine" in .ini
10. Added THREATRNG param, returns the target's best attack range to the platform evaluating the doctrine.
11. Added SETTESTSENSOR and TESTSENSORSTATUS to test sensor enable conditions.
 
Miscellaneous Improvements/Changes

1. Changed version to 1.34
2. Can now add groups from the "new object" goal
3. Display source platform and sensor for Solutions in the DDI window
4. Changed passive sonar and ESM ID algorithm- contact object class is determined after 30 seconds, positive id at up to 180 depending on signal strength
5. Damage control- launchers and sensors are tallied, and damaged to match platform's % damage.  One chance of repair 1/2 hour after exceeding 25% damage- platform has a 75% chance of being repaired 25%, otherwise it's damaged a further 25%.  Salvo fire at damaged targets is adjusted down 25% when the target is 50% damaged, or adjusted down 50% when the target is 75% damaged.
6. Changed shallow depth order to periscope depth for subs, and medium depth to 15ft above layer or 150ft if no layer
7. Added air-to-air refueling capability.  Any aircraft with a comms priority of 6 in the database is flagged as a tanker (there are none in the original databases).  <ctrl-f> will order an aircraft to refuel if a tanker is available.  Only aircraft with a CM flag of 128 in the objects database are capable if inflight refueling.
8. Enabled air stations for land objects in the mission editor.  Also, <shift-f> will add an air station to any object with an airstrip from within the game. 

